#include"dir.h"

extern int (*view)[4] ;
void up(void)
{
	for(int j=0;j<4;j++)
	{
		for(int i=1;i<4;i++)
		{
			for(int x=i;x>0;x--)
			{
				if(view[x][j] && view[x][j] == view[x-1][j])
				{
					view[x-1][j] *= 2;
					view[x][j]=0;
				}
				else if(view[x][j] && !view[x-1][j])
				{
					view[x-1][j] = view[x][j];
					view[x][j] = 0;
				}
			}
		}
	}
}
void down(void)
{
	for(int j=0;j<4;j++)
	{
		for(int i=0;i<3;i++)
		{
			for(int x=i;x<3;x++)
			{
				if(view[x][j] && view[x][j] == view[x+1][j])
				{
					view[x+1][j] *= 2;
					view[x][j]=0;
				}
				else if(view[x][j] && !view[x+1][j])
				{
					view[x+1][j] = view[x][j];
					view[x][j] = 0;
				}
			}
		}
	}
}
void left(void)
{
	for(int i=0;i<4;i++)
	{
		for(int j=1;j<4;j++)
		{
			for(int x=j;x>0;x--)
			{
				if(view[i][x] && view[i][x] == view[i][x-1])
				{
					view[i][x-1] *= 2;
					view[i][x]=0;
				}
				else if(view[i][x] && !view[i][x-1])
				{
					view[i][x-1] = view[i][x];
					view[i][x] = 0;
				}
			}
		}
	}
}
void right(void)
{
	for(int i=0;i<4;i++)
	{
		for(int j=0;j<3;j++)
		{
			for(int x=j;x<3;x++)
			{
				if(view[i][x] && view[i][x] == view[i][x+1])
				{
					view[i][x+1] *= 2;
					view[i][x]=0;
				}
				else if(view[i][x] && !view[i][x+1])
				{
					view[i][x+1] = view[i][x];
					view[i][x] = 0;
				}
			}
		}
	}
}
